import axios from "axios";
import Element  from "element-ui";
import router from "@/router";
// 使用统一的API前缀
axios.defaults.baseURL = "http://101.43.191.20:5677"
const request = axios.create({
    timeout: 5000,
    headers: {
        'Content-Type': 'application/json;  charset=utf-8'
    }
})
//请求拦截器
request.interceptors
    .request.use(config => {
        /*
        对于验证码请求不带token，防止token过期不显示（后端已解决）
        */
    if(config.url !== "/captcha"){
        console.log(config.url)
        // 请求头带上token
        config.headers['Authorization'] = localStorage.getItem("token")
    }
    return config
})
//响应拦截器
request.interceptors
    .response.use(response => {
        //解析出响应体
        let body = response.data;
        if (body.code === 200) {
            return response
        } else {
            //不为200则弹出提示
            Element.Message.error(body.msg ? body.msg : '系统异常')
            return Promise.reject(response.data.msg)
        }
    },
    /*判断status.code和error.response.status，
    如果是401未登录没权限的就调到登录页面，其他的就直接弹窗显示错误
    * */
    error => {
        console.log(error)
        if(error.response.data) {
            error.message = error.response.data.msg
        }
        if (error.response.status === 401) {
            router.push("/login")
        }
        Element.Message.error(error.message)
        return Promise.reject(error)
    }
)
export default request

